import pymysql as pms
import datetime
import cfg


def get_before_day(d: int):
    # 获取前N天的字符串格式的函数
    # 获取今天的日期
    today = datetime.date.today()
    # 获取N天的日期格式数据
    n_day = datetime.timedelta(days=d)
    # 等于今天减去N天
    the_day = today - n_day
    # 获取昨天日期的格式化字符串
    the_day_str = the_day.strftime('%Y-%m-%d')
    # 返回昨天的字符串
    return the_day_str


def get_data(sql: str):
    # 一个传入sql导出数据的函数
    # 跟数据库建立连接
    db_cfg = cfg.config("db")
    conn = pms.connect(**db_cfg)
    # 使用 cursor() 方法创建一个游标对象 cursor
    cur = conn.cursor()
    # 使用 execute() 方法执行 SQL
    cur.execute(sql)
    # 获取所需要的数据
    data = cur.fetchall()
    header = [col[0] for col in cur.description]
    row_count = cur.rowcount
    # 关闭连接
    cur.close()
    # 返回所需的数据
    return row_count, header, data


def get_excel(data, field, sheet_name, wb):
    # 将数据和字段名写入excel的函数
    # 新增一个sheet
    sheet = wb.create_sheet(sheet_name)
    sheet.append(field)
    list(map(sheet.append, data))
